/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bolao.ui.beans;

import bolao.dominio.seguranca.Grupo;
import bolao.dominio.seguranca.Usuario;
import bolao.util.JsfUtil;
import bolao.util.StringUtil;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.model.DualListModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author 002824992500
 */
@ManagedBean
@ViewScoped
public class UserJsfBean extends BaseCRUDJSFBean {

    private static final Logger log = LoggerFactory.getLogger(UserJsfBean.class);
    private String senha;
    private String senha2;

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }    

    public String getSenha2() {
        return senha2;
    }

    public void setSenha2(String senha2) {
        this.senha2 = senha2;
    }

    public Usuario getUsuario() {
        return getObjSelecionado();
    }

    public void setUsuario(Usuario user) {
        setObjSelecionado(user);
    }
    private List<Usuario> usuarios = new ArrayList<Usuario>();

    public List<Usuario> getUsuarios() {
        return usuarios;
    }
    private DualListModel<Grupo> grupos = new DualListModel<Grupo>();

    public DualListModel<Grupo> getGrupos() {
        return grupos;
    }

    public void setGrupos(DualListModel<Grupo> grupos) {
        this.grupos = grupos;
        getUsuario().setGrupos(grupos.getTarget());
    }

    /** Creates a new instance of ColaboradorJSFBean */
    public UserJsfBean() {
    }

    @Override
    public void setup() {
        setPaginaForm("form_usuario");
        setPaginaListagem("list_usuario");
        setCrudClass(Usuario.class);

        renovarTabela();
        JsfUtil.configPickList(getCrudService().findAll(Grupo.class), getUsuario().getGrupos(), this.grupos);
    }

    @Override
    public String salva() {
        if (!senha.isEmpty() || !senha2.isEmpty()) {
            if (!senha.equals(senha2)) {
                error("A confirmação da senha não confere.");
                return null;
            } else {
                getUsuario().setSenha(new StringUtil().md5(senha));
            }
        }
        return super.salva();
    }

    @Override
    protected void renovarTabela() {
        this.usuarios = getCrudService().findAll(Usuario.class);
    }
}
